package com.em.view.util;

import android.app.Activity;
import android.content.Context;
import android.view.Display;

/**
 * view工具
 * 
 * @author guihong_ke
 * 
 */
public class ViewUtil {
	public static int sceen_width = 0;
	public static int sceen_heigh = 0;

	/**
	 * 得到屏幕的高度
	 * 
	 * @return
	 */
	public static int getSceen_width(Context con) {
		if (sceen_width == 0) {
			Display currentDisplay = ((Activity) con).getWindowManager()
					.getDefaultDisplay();
			sceen_width = currentDisplay.getWidth();
		}
		return sceen_width;
	}

	/**
	 * 得到屏幕的宽度
	 * 
	 * @return
	 */
	public static int getSceen_heigh(Context con) {
		if (sceen_heigh == 0) {
			if (sceen_heigh == 0) {
				Display currentDisplay = ((Activity) con).getWindowManager()
						.getDefaultDisplay();
				sceen_heigh = currentDisplay.getHeight();
			}
		}
		return sceen_heigh;
	}

	/**
	 * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
	 */
	public static int dip2px(Context context, float dpValue) {
		final float scale = context.getResources().getDisplayMetrics().density;
		return (int) (dpValue * scale + 0.5f);
	}

	/**
	 * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
	 */
	public static int px2dip(Context context, float pxValue) {
		final float scale = context.getResources().getDisplayMetrics().density;
		return (int) (pxValue / scale + 0.5f);
	}

	/**
	 * 屏幕适配，得到计算后的宽度大小
	 * 
	 * @param con
	 * @param w 宽
	 * @return 实际像素的宽
	 */
	public static int getActualSizeWithWidth(Context con, int w) {
		return ViewUtil.getSceen_width(con) * w / 720;
	}

	/**
	 * 屏幕适配，得到计算后的高度大小
	 * 
	 * @param con
	 * @param h 高
	 * @return 实际像素的高
	 */
	public static int getActualSizeWithHeight(Context con, int h) {
		return ViewUtil.getSceen_heigh(con) * h / 1280;
	}
	/**
	 * 屏幕适配，得到计算后的宽度大小
	 * 
	 * @param con
	 * @param w 宽
	 * @return 实际像素的宽
	 */
	public static int getActualSizeWithWidth1080P(Context con, int w) {
		return ViewUtil.getSceen_width(con) * w / 1080;
	}
	
	/**
	 * 屏幕适配，得到计算后的高度大小
	 * 
	 * @param con
	 * @param h 高
	 * @return 实际像素的高
	 */
	public static int getActualSizeWithHeight1080P(Context con, int h) {
		return ViewUtil.getSceen_heigh(con) * h / 1920;
	}
	
	/**
	 * 获得状态栏的高度
	 * 
	 * @param context
	 * @return
	 */
	public static int getStatusHeight(Context con) {
	 
	    int statusHeight = -1;
	    try {
	        Class<?> clazz = Class.forName("com.android.internal.R$dimen");
	        Object object = clazz.newInstance();
	        int height = Integer.parseInt(clazz.getField("status_bar_height")
	                .get(object).toString());
	        statusHeight = con.getResources().getDimensionPixelSize(height);
	    } catch (Exception e) {
	        e.printStackTrace();
	    }
	    return statusHeight;
	}
}
